function runAsync(){
    flag=false
    let p = new Promise(function(resolve, reject){
         setTimeout(function(){
              if(flag){
                    console.log('执行异步操作')
                    resolve('promise')
              }
              else
                    reject('执行异步操作失败')
         }, 1000)
    })
    return p
}

runAsync()
     .then(function(data){
               console.log(data);
           },
          function(err){
               console.log(err);
          })

//除了then方法，Promise对象还提供了一个catch方法，
//也可以执行reject回调，其使用方法与then类似。例如，上面代码可以修改如下：
// runAsync()
//     .then(function(data){
//         console.log(data);
//     })
//     .catch(function(err){
//         console.log(err);
//     });